package com.zhangtai.modules.vo;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.zhangtai.config.LongJsonDeserializer;
import com.zhangtai.config.LongJsonSerializer;
import com.zhangtai.modules.entity.employee.RelationEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

@Data
public class LastEmployeeInfoUpdateVo {

    @NotNull(message = "员工id不能为空" )
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    @ApiModelProperty(value="id",required = false)
    private Long oid;


    /**
     * 姓名
     */
    @ApiModelProperty(value="姓名",name = "cName",required = false)
    private String name;
    /**
     * 性别
     */
    @ApiModelProperty(value="性别，1：男，2：女，字符串型",name = "cGender",required = false)
    private String gender;
    /**
     * 身份证号
     */
    @ApiModelProperty(value="身份证号",required = false)
    private String idcard;

//    @ApiModelProperty(value="工号",required = false)
//    private String code;
    /**
     * 民族
     */
    @ApiModelProperty(value="国家，156：中国",required = false)
    private String nation;


    /**
     * 籍贯省
     */
    @ApiModelProperty(value="籍贯省，读/common/getNativeplaceTree 接口获取",required = false)
    private Integer nativeplaceProvince;
    /**
     * 籍贯
     */
    @ApiModelProperty(value="籍贯，读/common/getNativeplaceTree 接口获取",required = false)
    private String nativeplace;
    /**
     * 国籍
     */
    @ApiModelProperty(value="民族，",required = false)
    private String nationality;
    /**
     * 手机
     */
    @ApiModelProperty(value="手机",required = false)
    private String mobile;
    /**
     * 政治面貌
     */
    @ApiModelProperty(value="政治面貌，1：党员， 13：群众",required = false)
    private String polity;








    /**
     * 部门id
     */
    @ApiModelProperty(value="拟录部门id，读接口/job/findOrgTree获取",required = false)
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long unitId;



    /**
     * 公司id
     */
    @ApiModelProperty(value="拟录公司id，读接口/job/findOrgTree获取",required = false)
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long orgId;

    /**
     * 职位id
     */
    @ApiModelProperty(value="岗位id，读接口/job/findJobByOrgId/{orgId}获取",required = false)
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long jobId;

    /**
     * 职级id
     */
    @ApiModelProperty(value="职级id,读接口/job/findJobLevel获取",required = false)
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long jobLevelId;



    @ApiModelProperty(value="职级类别,1:专业职级，2：管理职级",required = false)
    private Integer jobLevelType;


    /**
     * 预计入职时间
     */
    @ApiModelProperty(value="入职日期",required = false)
    private Date hiredate;



    /**
     * 试用期
     */
    @ApiModelProperty(value="试用期",required = false)
    private Integer probationday;



    /**
     * 招聘渠道
     */
    @ApiModelProperty(value="招聘渠道,1:猎头，2：网站，3：内部推荐，4：外部推荐，5：现场招聘，6：校园招聘，7：其他",required = false)
    private String channel;
    /**
     * 招聘网站
     */
    @ApiModelProperty(value="招聘网站，1：广西人才，2：智联，3：58同城，4：前程无忧，5：猎聘网，6：其他",required = false)
    private String recruitmentWeb;
    /**
     * 推荐人-内部
     */
    @ApiModelProperty(value="推荐人-内部",required = false)
    private String innerReferrer;
    /**
     * 推荐人-外部
     */
    @ApiModelProperty(value="推荐人-外部",required = false)
    private String outerReferrer;





    @ApiModelProperty(value="条线，读接口：/salary/getOrgLine获取",required = false)
    private String line;

    @ApiModelProperty(value="条线id，读接口：/salary/getOrgLine获取",required = false)
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long lineId;


    @ApiModelProperty(value="体系id，读接口：/salary/getOrgSystem获取",required = false)
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long jobSystemId;




    /**
     * 亲属
     */
    @ApiModelProperty(value="亲属",required = false)
    private List<RelationEntity> relationEntityList;

    @ApiModelProperty(value="原单位工资流水图片",required = false)
    private List<String> oldSalaryRecordUrl;

    @ApiModelProperty(value="一寸照片url",required = false)
    private String photoUrl;

    @ApiModelProperty(value="毕业证",required = false)
    private String graduationUrl;

    @ApiModelProperty(value="学位证",required = false)
    private String degreeUrl;

    @ApiModelProperty(value="离职证明",required = false)
    private String dimissionUrl;

    @ApiModelProperty(value="体检报告",required = false)
    private String healthUrl;
    @ApiModelProperty(value="身份证正反面",required = false)
    private List<String> idcardImgs;

    @ApiModelProperty(value="职称证书",required = false)
    private List<String>  credential;

    @ApiModelProperty(value="其他附件",required = false)
    private List<String> attachments;

    /**
     * 档案地址
     */
    @ApiModelProperty(value="档案地址",required = false)
    private String recordFileAddress;


    /**
     * 专业类型
     */
    private String professionalType;
    /**
     * 岗位星级
     */
    private String positionStar;
    /**
     * 是否复职
     */
    private String reinstatement;
    /**
     * 档案编号
     */
    private String fileNumber;


    @ApiModelProperty(value = "是否公司负责人，null：不是，1：是", required = false)
    private String iscentreprincipal;

    @ApiModelProperty(value = "是否部门负责人，null：不是，1：是", required = false)
    private String isdepartmentprincipa;
}
